iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 12
0

執行的時候有兩個地方要注意,一個是資料型態必須是data.frame(我平常都會轉成tibble看資料比較方便),另外一個就是你要改變的參數必須是一種factor,這兩個不轉不給使用SMOTE()

train_smote <- SMOTE(fraud_ind ~ ., as.data.frame(fraud_train), perc.over = 20000, perc.under=100)

然後SMOTE()的perc.over 跟 perc.under我覺得超級莫名其妙的啊哈哈。

perc.over = a 表示較少的變量變成原来的(1+a/100)倍
perc.under= b 表示較多的變量變成少變量的 b/100 * (a/100) 倍

也就是說 如果我今天只是想要把較少的資料變成跟較多的資料差不多,我必須...

par = table(data$fraud_ind)[1]/table(data$fraud_ind)[2]
#知道差距幾倍
我的perc.over = a 必須是1+a/100 = par
a = (par - 1)*100
我的perc.over = b 必須是b/100 * (a/100) = par
b = par / (100 / a )*100 = par * a = par * (par - 1)*100

我的理解應該沒錯吧(?


上一篇
R語言_一言不合就xgboost_2
下一篇
R語言 - 資料不平衡_2
系列文
R語言 - 從「主觀感覺」轉為「客觀事實」30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言